查看原文
其他

使用 Python 打印漂亮的表格,这两项基本功你可会?

写代码的明哥 Python编程时光 2021-08-09
点击上方“Python编程时光”,选择“加为星标
第一时间关注Python技术干货!

今天给大家介绍如何在打印字符串时,规则对齐的两种方法,帮助大家在 shell 界面下输出漂亮的表格。

第一种:使用 format

先来看几个小 demo

左对齐

>>> "{:<10}".format("a")
'a         '
>>> 

右对齐

>>> "{:>10}".format("a")
'         a'
>>> 

居中

>>> "{:^10}".format("a")
'    a     '
>>> 

当你不指定 <>^ 时,默认就是左对齐

>>> "{:10}".format("a")
'a         '
>>> 

有了上面的铺垫,写一个整齐的 1-10 的平方、立方表就很容易了。

>>> for x in range(111):
...        print('{:2d} {:3d} {:4d}'.format(x, x*x, x*x*x))
...
 1   1    1
 2   4    8
 3   9   27
 4  16   64
 5  25  125
 6  36  216
 7  49  343
 8  64  512
 9  81  729
10 100 1000

对齐的思想其实就是在不足的位自动给你补上空格。

如果不想使用空格,可以指定你想要的字符进行填充,比如下面我用 0 来补全。

>>> for x in range(111):
...     print('{:02d} {:03d} {:04d}'.format(x, x*x, x*x*x))
... 
01 001 0001
02 004 0008
03 009 0027
04 016 0064
05 025 0125
06 036 0216
07 049 0343
08 064 0512
09 081 0729
10 100 1000

第二种:使用 ljust, rjust

左对齐

>>> "a".ljust(10)
'a         '
>>> 

右对齐

>>> "a".rjust(10)
'         a'
>>> 

居中

>>> "a".center(10)
'    a     '
>>> 

同样写一个整齐的 1-10 的平方、立方表

>>> for x in range(111):
...     print(' '.join([str(x).ljust(2), str(x * x).ljust(3), str(x * x * x).ljust(4)]))
... 
1  1   1   
2  4   8   
3  9   27  
4  16  64  
5  25  125 
6  36  216 
7  49  343 
8  64  512 
9  81  729 
10 100 1000

如果不想使用空格,而改用 0 来补齐呢?可以这样

>>> for x in range(111):
...     print(' '.join([str(x).rjust(2"0"), str(x*x).rjust(3"0"), str(x*x*x).rjust(4"0")]))
... 
01 001 0001
02 004 0008
03 009 0027
04 016 0064
05 025 0125
06 036 0216
07 049 0343
08 064 0512
09 081 0729
10 100 1000



以上就是今天的分享,很多漂亮的表格打印模块都是基于以上内置函数实现的,掌握了这两个,以后都可以自己实现啦~~希望本文对你能有帮助

文末福利

明哥整理了 21 张 Python 代码速查表,每一张都是国外的大师总结的,非常实用 ~


还有 2 张高清的 PyCharm 快捷键一览图,一张 Windows ,一张 Mac,放在桌面上,需要的时候打开一查,非常方便。。


怎么获取呢?


添加明哥微信,备注 "速查表" 和 "快捷键" 获取


- EOF -


推荐阅读  点击标题可跳转

第一次把 Python 的切片理解得如此透彻

10 个“疯狂”的 Python 项目创意

一行代码让 pandas 的 apply 速度飙到极致!

原来 collections 这么好用!!

献给Python开发人员的25个最佳GitHub代码库!

导入父文件夹中的模块并读取当前文件夹内的资源




得本文对你有帮助?请分享给更多人

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存